package 剑指offer;

import java.util.Arrays;

public class 剑指Offer61扑克牌中的顺子 {
    public boolean isStraight(int[] arr) {
        Arrays.sort(arr);
        int count = 0;//0的个数
        for(int i : arr){
            if(i == 0) count++;
        }
        if(count > 3) return true;
        int tem = 0;//所有非0牌之间差的和
        int num = 0;//不连续牌之间相差的张数
        for(int i = count;i < arr.length - 1 ; i++){
            if(arr[i+1] == arr[i]) return false;
            tem += arr[i+1] - arr[i];
            num += arr[i+1] - arr[i] - 1;
        }
        if(tem > 4){//如果非0牌之间的差大于4，一定不连续
            return false;
        }
        //如果相差的张数，大于0牌的张数，0不够补充，返回false；
        if(num > count) return false;
        //不满足fasle 的条件，就返回true；
        return true;
    }
}
